home *** CD-ROM | disk | FTP | other *** search
/ IRIX Base Documentation 2002 November / SGI IRIX Base Documentation 2002 November.iso / usr / share / catman / p_man / cat3 / SCSL / chbgvx.z / chbgvx
Encoding:
Text File  |  2002-10-03  |  9.5 KB  |  265 lines

  1.  
  2.  
  3.  
  4. CCCCHHHHBBBBGGGGVVVVXXXX((((3333SSSS))))                                                          CCCCHHHHBBBBGGGGVVVVXXXX((((3333SSSS))))
  5.  
  6.  
  7.  
  8. NNNNAAAAMMMMEEEE
  9.      CHBGVX - compute all the eigenvalues, and optionally, the eigenvectors of
  10.      a complex generalized Hermitian-definite banded eigenproblem, of the form
  11.      A*x=(lambda)*B*x
  12.  
  13. SSSSYYYYNNNNOOOOPPPPSSSSIIIISSSS
  14.      SUBROUTINE CHBGVX( JOBZ, RANGE, UPLO, N, KA, KB, AB, LDAB, BB, LDBB, Q,
  15.                         LDQ, VL, VU, IL, IU, ABSTOL, M, W, Z, LDZ, WORK,
  16.                         RWORK, IWORK, IFAIL, INFO )
  17.  
  18.          CHARACTER      JOBZ, RANGE, UPLO
  19.  
  20.          INTEGER        IL, INFO, IU, KA, KB, LDAB, LDBB, LDQ, LDZ, M, N
  21.  
  22.          REAL           ABSTOL, VL, VU
  23.  
  24.          INTEGER        IFAIL( * ), IWORK( * )
  25.  
  26.          REAL           RWORK( * ), W( * )
  27.  
  28.          COMPLEX        AB( LDAB, * ), BB( LDBB, * ), Q( LDQ, * ), WORK( * ),
  29.                         Z( LDZ, * )
  30.  
  31. IIIIMMMMPPPPLLLLEEEEMMMMEEEENNNNTTTTAAAATTTTIIIIOOOONNNN
  32.      These routines are part of the SCSL Scientific Library and can be loaded
  33.      using either the -lscs or the -lscs_mp option.  The -lscs_mp option
  34.      directs the linker to use the multi-processor version of the library.
  35.  
  36.      When linking to SCSL with -lscs or -lscs_mp, the default integer size is
  37.      4 bytes (32 bits). Another version of SCSL is available in which integers
  38.      are 8 bytes (64 bits).  This version allows the user access to larger
  39.      memory sizes and helps when porting legacy Cray codes.  It can be loaded
  40.      by using the -lscs_i8 option or the -lscs_i8_mp option. A program may use
  41.      only one of the two versions; 4-byte integer and 8-byte integer library
  42.      calls cannot be mixed.
  43.  
  44. PPPPUUUURRRRPPPPOOOOSSSSEEEE
  45.      CHBGVX computes all the eigenvalues, and optionally, the eigenvectors of
  46.      a complex generalized Hermitian-definite banded eigenproblem, of the form
  47.      A*x=(lambda)*B*x. Here A and B are assumed to be Hermitian and banded,
  48.      and B is also positive definite.  Eigenvalues and eigenvectors can be
  49.      selected by specifying either all eigenvalues, a range of values or a
  50.      range of indices for the desired eigenvalues.
  51.  
  52.  
  53. AAAARRRRGGGGUUUUMMMMEEEENNNNTTTTSSSS
  54.      JOBZ    (input) CHARACTER*1
  55.              = 'N':  Compute eigenvalues only;
  56.              = 'V':  Compute eigenvalues and eigenvectors.
  57.  
  58.  
  59.  
  60.  
  61.  
  62.  
  63.                                                                         PPPPaaaaggggeeee 1111
  64.  
  65.  
  66.  
  67.  
  68.  
  69.  
  70. CCCCHHHHBBBBGGGGVVVVXXXX((((3333SSSS))))                                                          CCCCHHHHBBBBGGGGVVVVXXXX((((3333SSSS))))
  71.  
  72.  
  73.  
  74.      RANGE   (input) CHARACTER*1
  75.              = 'A': all eigenvalues will be found;
  76.              = 'V': all eigenvalues in the half-open interval (VL,VU] will be
  77.              found; = 'I': the IL-th through IU-th eigenvalues will be found.
  78.  
  79.      UPLO    (input) CHARACTER*1
  80.              = 'U':  Upper triangles of A and B are stored;
  81.              = 'L':  Lower triangles of A and B are stored.
  82.  
  83.      N       (input) INTEGER
  84.              The order of the matrices A and B.  N >= 0.
  85.  
  86.      KA      (input) INTEGER
  87.              The number of superdiagonals of the matrix A if UPLO = 'U', or
  88.              the number of subdiagonals if UPLO = 'L'. KA >= 0.
  89.  
  90.      KB      (input) INTEGER
  91.              The number of superdiagonals of the matrix B if UPLO = 'U', or
  92.              the number of subdiagonals if UPLO = 'L'. KB >= 0.
  93.  
  94.      AB      (input/output) COMPLEX array, dimension (LDAB, N)
  95.              On entry, the upper or lower triangle of the Hermitian band
  96.              matrix A, stored in the first ka+1 rows of the array.  The j-th
  97.              column of A is stored in the j-th column of the array AB as
  98.              follows:  if UPLO = 'U', AB(ka+1+i-j,j) = A(i,j) for max(1,j-
  99.              ka)<=i<=j; if UPLO = 'L', AB(1+i-j,j)    = A(i,j) for
  100.              j<=i<=min(n,j+ka).
  101.  
  102.              On exit, the contents of AB are destroyed.
  103.  
  104.      LDAB    (input) INTEGER
  105.              The leading dimension of the array AB.  LDAB >= KA+1.
  106.  
  107.      BB      (input/output) COMPLEX array, dimension (LDBB, N)
  108.              On entry, the upper or lower triangle of the Hermitian band
  109.              matrix B, stored in the first kb+1 rows of the array.  The j-th
  110.              column of B is stored in the j-th column of the array BB as
  111.              follows:  if UPLO = 'U', BB(kb+1+i-j,j) = B(i,j) for max(1,j-
  112.              kb)<=i<=j; if UPLO = 'L', BB(1+i-j,j)    = B(i,j) for
  113.              j<=i<=min(n,j+kb).
  114.  
  115.              On exit, the factor S from the split Cholesky factorization B =
  116.              S**H*S, as returned by CPBSTF.
  117.  
  118.      LDBB    (input) INTEGER
  119.              The leading dimension of the array BB.  LDBB >= KB+1.
  120.  
  121.      Q       (output) COMPLEX array, dimension (LDQ, N)
  122.              If JOBZ = 'V', the n-by-n matrix used in the reduction of A*x =
  123.              (lambda)*B*x to standard form, i.e. C*x = (lambda)*x, and
  124.              consequently C to tridiagonal form.  If JOBZ = 'N', the array Q
  125.              is not referenced.
  126.  
  127.  
  128.  
  129.                                                                         PPPPaaaaggggeeee 2222
  130.  
  131.  
  132.  
  133.  
  134.  
  135.  
  136. CCCCHHHHBBBBGGGGVVVVXXXX((((3333SSSS))))                                                          CCCCHHHHBBBBGGGGVVVVXXXX((((3333SSSS))))
  137.  
  138.  
  139.  
  140.      LDQ     (input) INTEGER
  141.              The leading dimension of the array Q.  If JOBZ = 'N', LDQ >= 1.
  142.              If JOBZ = 'V', LDQ >= max(1,N).
  143.  
  144.      VL      (input) REAL
  145.              VU      (input) REAL If RANGE='V', the lower and upper bounds of
  146.              the interval to be searched for eigenvalues. VL < VU.  Not
  147.              referenced if RANGE = 'A' or 'I'.
  148.  
  149.      IL      (input) INTEGER
  150.              IU      (input) INTEGER If RANGE='I', the indices (in ascending
  151.              order) of the smallest and largest eigenvalues to be returned.  1
  152.              <= IL <= IU <= N, if N > 0; IL = 1 and IU = 0 if N = 0.  Not
  153.              referenced if RANGE = 'A' or 'V'.
  154.  
  155.      ABSTOL  (input) REAL
  156.              The absolute error tolerance for the eigenvalues.  An approximate
  157.              eigenvalue is accepted as converged when it is determined to lie
  158.              in an interval [a,b] of width less than or equal to
  159.  
  160.              ABSTOL + EPS *   max( |a|,|b| ) ,
  161.  
  162.              where EPS is the machine precision.  If ABSTOL is less than or
  163.              equal to zero, then  EPS*|T|  will be used in its place, where
  164.              |T| is the 1-norm of the tridiagonal matrix obtained by reducing
  165.              AP to tridiagonal form.
  166.  
  167.              Eigenvalues will be computed most accurately when ABSTOL is set
  168.              to twice the underflow threshold 2*SLAMCH('S'), not zero.  If
  169.              this routine returns with INFO>0, indicating that some
  170.              eigenvectors did not converge, try setting ABSTOL to
  171.              2*SLAMCH('S').
  172.  
  173.      M       (output) INTEGER
  174.              The total number of eigenvalues found.  0 <= M <= N.  If RANGE =
  175.              'A', M = N, and if RANGE = 'I', M = IU-IL+1.
  176.  
  177.      W       (output) REAL array, dimension (N)
  178.              If INFO = 0, the eigenvalues in ascending order.
  179.  
  180.      Z       (output) COMPLEX array, dimension (LDZ, N)
  181.              If JOBZ = 'V', then if INFO = 0, Z contains the matrix Z of
  182.              eigenvectors, with the i-th column of Z holding the eigenvector
  183.              associated with W(i). The eigenvectors are normalized so that
  184.              Z**H*B*Z = I.  If JOBZ = 'N', then Z is not referenced.
  185.  
  186.      LDZ     (input) INTEGER
  187.              The leading dimension of the array Z.  LDZ >= 1, and if JOBZ =
  188.              'V', LDZ >= N.
  189.  
  190.  
  191.  
  192.  
  193.  
  194.  
  195.                                                                         PPPPaaaaggggeeee 3333
  196.  
  197.  
  198.  
  199.  
  200.  
  201.  
  202. CCCCHHHHBBBBGGGGVVVVXXXX((((3333SSSS))))                                                          CCCCHHHHBBBBGGGGVVVVXXXX((((3333SSSS))))
  203.  
  204.  
  205.  
  206.      WORK    (workspace) COMPLEX array, dimension (N)
  207.  
  208.      RWORK   (workspace) REAL array, dimension (7*N)
  209.  
  210.      IWORK   (workspace) INTEGER array, dimension (5*N)
  211.  
  212.      IFAIL   (output) INTEGER array, dimension (N)
  213.              If JOBZ = 'V', then if INFO = 0, the first M elements of IFAIL
  214.              are zero.  If INFO > 0, then IFAIL contains the indices of the
  215.              eigenvectors that failed to converge.  If JOBZ = 'N', then IFAIL
  216.              is not referenced.
  217.  
  218.      INFO    (output) INTEGER
  219.              = 0:  successful exit
  220.              < 0:  if INFO = -i, the i-th argument had an illegal value
  221.              > 0:  if INFO = i, and i is:
  222.              <= N:  then i eigenvectors failed to converge.  Their indices are
  223.              stored in array IFAIL.  > N:   if INFO = N + i, for 1 <= i <= N,
  224.              then CPBSTF
  225.              returned INFO = i: B is not positive definite.  The factorization
  226.              of B could not be completed and no eigenvalues or eigenvectors
  227.              were computed.
  228.  
  229. FFFFUUUURRRRTTTTHHHHEEEERRRR DDDDEEEETTTTAAAAIIIILLLLSSSS
  230.      Based on contributions by
  231.         Mark Fahey, Department of Mathematics, Univ. of Kentucky, USA
  232.  
  233.  
  234. SSSSEEEEEEEE AAAALLLLSSSSOOOO
  235.      INTRO_LAPACK(3S), INTRO_SCSL(3S)
  236.  
  237.      This man page is available only online.
  238.  
  239.  
  240.  
  241.  
  242.  
  243.  
  244.  
  245.  
  246.  
  247.  
  248.  
  249.  
  250.  
  251.  
  252.  
  253.  
  254.  
  255.  
  256.  
  257.  
  258.  
  259.  
  260.  
  261.                                                                         PPPPaaaaggggeeee 4444
  262.  
  263.  
  264.  
  265.